package cn.net.sinodata.system.domain.vo;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import cn.net.sinodata.system.domain.BmTransSubSerial;
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
import cn.idev.excel.annotation.ExcelProperty;
import cn.net.sinodata.common.excel.annotation.ExcelDictFormat;
import cn.net.sinodata.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * 交易流水附视图对象 bm_trans_sub_serial
 *
 * @author chenbaijun
 * @date 2025-10-31
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = BmTransSubSerial.class)
public class BmTransSubSerialVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private String id;

    /**
     * 主流水表主键
     */
    @ExcelProperty(value = "主流水表主键")
    private String transid;

    /**
     * 交易流水号
     */
    @ExcelProperty(value = "交易流水号")
    private String transNo;

    /**
     * 托管机构
     */
    @ExcelProperty(value = "托管机构")
    private String custodyInstitutionName;

    /**
     * 是否在交易后确认
     */
    @ExcelProperty(value = "是否在交易后确认")
    private String isConfirmAfterTrans;

    /**
     * 起息清结算方式
     */
    @ExcelProperty(value = "起息清结算方式")
    private String interestSettlementMethod;

    /**
     * 到期清结算方式
     */
    @ExcelProperty(value = "到期清结算方式")
    private String maturitySettlementMethod;

    /**
     * 是否跨托管机构
     */
    @ExcelProperty(value = "是否跨托管机构")
    private String isCrossCustodian;

    /**
     * 起息日期
     */
    @ExcelProperty(value = "起息日期")
    private Date interestDate;

    /**
     * 机构身份标识
     */
    @ExcelProperty(value = "机构身份标识")
    private String organizationalIdentity;

    /**
     * 交易方向
     */
    @ExcelProperty(value = "交易方向")
    private String transactionDirection;

    /**
     * 交易员邮箱
     */
    @ExcelProperty(value = "交易员邮箱")
    private String traderEmail;

    /**
     * 交易对手名称
     */
    @ExcelProperty(value = "交易对手名称")
    private String counterpartyName;

    /**
     * 起息金额
     */
    @ExcelProperty(value = "起息金额")
    private Long principalAmt;

    /**
     * 到期金额
     */
    @ExcelProperty(value = "到期金额")
    private Long maturityAmt;

    /**
     * 内部审批进度
     */
    @ExcelProperty(value = "内部审批进度")
    private String approvalStatus;

    /**
     * 是否存在期间派息
     */
    @ExcelProperty(value = "是否存在期间派息")
    private String isPeriodDividend;

    /**
     * 派息日
     */
    @ExcelProperty(value = "派息日")
    private Date dividendDate;

    /**
     * 首期支付日
     */
    @ExcelProperty(value = "首期支付日")
    private Date firstPaymentDate;

    /**
     * 频率
     */
    @ExcelProperty(value = "频率")
    private String frequency;

    /**
     * 支付调整日
     */
    @ExcelProperty(value = "支付调整日")
    private Date paymentAdjustmentDate;

}
